<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象的扩展</title>
</head>

<body>
    <script>
        //1  属性的简洁表示法
        const foo = 'bar'
        const baz = {
            foo
        }

        // 等同于 
        // const baz = {
        //     foo: foo
        // }

        // 2 属性名表达式


        //属性的遍历 § 

        //扩展运算符
        // 对象的扩展运算符（...）用于取出参数对象的所有可遍历属性，拷贝到当前对象之中。
        let z = {
            a: 3,
            b: 4
        }
        let n = {
            ...z
        }
        //8 Null 判断运算符
        // 读取对象属性的时候，如果某个属性的值是null或undefined，有时候需要为它们指定默认值。常见做法是通过||运算符指定默认值。

        // 原来
        // const headerText = response.settings.headerText || 'Hello, world!';
        // const animationDuration = response.settings.animationDuration || 300;
        // const showSplashScreen = response.settings.showSplashScreen || true;

        // 以上不仅null undefined 的时候会有默认值但是 空字符串 false 或者0 也会执行默认值
        // ES2020 引入一个??
        // const headerText = response.settings.headerText ? ? 'Hello, world!';
        // const animationDuration = response.settings.animationDuration ? ? 300;
        // const showSplashScreen = response.settings.showSplashScreen ? ? true;
    </script>
</body>

</html>